--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Node / ReticulumProjects / MeshChatX.git / files / meshchatx / src / frontend / components / profile / ProfileIconPage.vue
Displaying Raw • Download
meshchatx/src/frontend/components/profile/ProfileIconPage.vue fda9187e95d8b9cc8373c1de23cefce6928c241d (fda9187e) Text, 19.72 KB
Tb4b4b4<Tff7b72templateTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex flex-col flex-1 overflow-hidden min-w-0 dark:bg-zinc-950"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"overflow-y-auto"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"max-w-4xl mx-auto p-4 space-y-6"Tb4b4b4>
T8b949e<!-- Header with Preview -->
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"bg-white dark:bg-zinc-900 rounded-xl shadow-sm border border-gray-200 dark:border-zinc-800"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"p-6 border-b border-gray-200 dark:border-zinc-800"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-center justify-between"Tb4b4b4>
Tb4b4b4<Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72h2 Te6edf3classTff7b72=Ta5d6ff"text-xl font-bold text-gray-900 dark:text-white"Tb4b4b4>Profile Icon CustomizerTb4b4b4<Tb4b4b4/Tff7b72h2Tb4b4b4>
Tb4b4b4<Tff7b72p Te6edf3classTff7b72=Ta5d6ff"text-sm text-gray-500 dark:text-zinc-400 mt-1"Tb4b4b4>
Customize your profile icon that appears in all your messages
Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-center gap-3"Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3typeTff7b72=Ta5d6ff"button"
Tb4b4b4:Te6edf3disabledTff7b72=Ta5d6ff"Tff7b72!Te6edf3hasChanges Tff7b72|| Te6edf3isSavingTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"inline-flex items-center gap-2 px-4 py-2 text-sm font-medium rounded-lg border transition-colors disabled:opacity-50 disabled:cursor-not-allowed"
Tb4b4b4:Te6edf3classTff7b72=Ta5d6ff"
Te6edf3hasChanges Tff7b72&& Tff7b72!Te6edf3isSaving
Tff7b72? Ta5d6ff'bg-blue-600 text-white border-blue-600 hover:bg-blue-700 dark:bg-blue-500 dark:border-blue-500 dark:hover:bg-blue-600'
Tff7b72: Ta5d6ff'bg-gray-100 text-gray-700 border-gray-300 dark:bg-zinc-800 dark:text-zinc-300 dark:border-zinc-700'
Ta5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3saveChangesTa5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3isSavingTa5d6ff"
Te6edf3icon-nameTff7b72=Ta5d6ff"refresh"
Te6edf3classTff7b72=Ta5d6ff"size-4 animate-spin"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3v-else Te6edf3icon-nameTff7b72=Ta5d6ff"content-save" Te6edf3classTff7b72=Ta5d6ff"size-4" Tb4b4b4/Tb4b4b4>
Tff7b72{{ Te6edf3isSaving Tff7b72? Ta5d6ff"Saving..." Tff7b72: Ta5d6ff"Save" Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3typeTff7b72=Ta5d6ff"button"
Tb4b4b4:Te6edf3disabledTff7b72=Ta5d6ff"Tff7b72!Te6edf3hasChanges Tff7b72|| Te6edf3isSavingTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"inline-flex items-center gap-2 px-4 py-2 text-sm font-medium rounded-lg border border-gray-300 dark:border-zinc-700 bg-white dark:bg-zinc-800 text-gray-700 dark:text-zinc-300 hover:bg-gray-50 dark:hover:bg-zinc-700 transition-colors disabled:opacity-50 disabled:cursor-not-allowed"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3resetChangesTa5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"refresh" Te6edf3classTff7b72=Ta5d6ff"size-4" Tb4b4b4/Tb4b4b4>
Reset
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"p-6"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex flex-col items-center justify-center space-y-4"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"text-sm font-medium text-gray-700 dark:text-zinc-300"Tb4b4b4>PreviewTb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"p-8 bg-gray-50 dark:bg-zinc-800 rounded-2xl"Tb4b4b4>
Tb4b4b4<Tff7b72LxmfUserIcon
Tb4b4b4:Te6edf3keyTff7b72=Ta5d6ff"Te6edf3iconName Tff7b72+ Te6edf3iconForegroundColour Tff7b72+ Te6edf3iconBackgroundColourTa5d6ff"
Tb4b4b4:Te6edf3icon-nameTff7b72=Ta5d6ff"Te6edf3iconNameTa5d6ff"
Tb4b4b4:Te6edf3icon-foreground-colourTff7b72=Ta5d6ff"Te6edf3iconForegroundColourTa5d6ff"
Tb4b4b4:Te6edf3icon-background-colourTff7b72=Ta5d6ff"Te6edf3iconBackgroundColourTa5d6ff"
Te6edf3icon-classTff7b72=Ta5d6ff"size-24"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"text-xs text-gray-500 dark:text-zinc-400 text-center max-w-md"Tb4b4b4>
This is how your icon will appear to others when you send messages
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
T8b949e<!-- Color Selection -->
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"bg-white dark:bg-zinc-900 rounded-xl shadow-sm border border-gray-200 dark:border-zinc-800"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"p-4 border-b border-gray-200 dark:border-zinc-800"Tb4b4b4>
Tb4b4b4<Tff7b72h3 Te6edf3classTff7b72=Ta5d6ff"text-lg font-semibold text-gray-900 dark:text-white"Tb4b4b4>ColorsTb4b4b4<Tb4b4b4/Tff7b72h3Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"p-4 space-y-4"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-center justify-between gap-4"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex-1"Tb4b4b4>
Tb4b4b4<Tff7b72label Te6edf3classTff7b72=Ta5d6ff"block text-sm font-medium text-gray-700 dark:text-zinc-300 mb-2"Tb4b4b4>
Background Color
Tb4b4b4<Tb4b4b4/Tff7b72labelTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-center gap-3"Tb4b4b4>
Tb4b4b4<Tff7b72ColourPickerDropdown Te6edf3v-modelTb4b4b4:Te6edf3colourTff7b72=Ta5d6ff"Te6edf3iconBackgroundColourTa5d6ff" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex-1"Tb4b4b4>
Tb4b4b4<Tff7b72input
Te6edf3v-modelTff7b72=Ta5d6ff"Te6edf3iconBackgroundColourTa5d6ff"
Te6edf3typeTff7b72=Ta5d6ff"text"
Te6edf3classTff7b72=Ta5d6ff"w-full px-3 py-2 text-sm border border-gray-300 dark:border-zinc-700 rounded-lg bg-white dark:bg-zinc-800 text-gray-900 dark:text-zinc-100 focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
Te6edf3placeholderTff7b72=Ta5d6ff"#e5e7eb"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-center justify-between gap-4"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex-1"Tb4b4b4>
Tb4b4b4<Tff7b72label Te6edf3classTff7b72=Ta5d6ff"block text-sm font-medium text-gray-700 dark:text-zinc-300 mb-2"Tb4b4b4>
Icon Color
Tb4b4b4<Tb4b4b4/Tff7b72labelTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-center gap-3"Tb4b4b4>
Tb4b4b4<Tff7b72ColourPickerDropdown Te6edf3v-modelTb4b4b4:Te6edf3colourTff7b72=Ta5d6ff"Te6edf3iconForegroundColourTa5d6ff" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex-1"Tb4b4b4>
Tb4b4b4<Tff7b72input
Te6edf3v-modelTff7b72=Ta5d6ff"Te6edf3iconForegroundColourTa5d6ff"
Te6edf3typeTff7b72=Ta5d6ff"text"
Te6edf3classTff7b72=Ta5d6ff"w-full px-3 py-2 text-sm border border-gray-300 dark:border-zinc-700 rounded-lg bg-white dark:bg-zinc-800 text-gray-900 dark:text-zinc-100 focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
Te6edf3placeholderTff7b72=Ta5d6ff"#6b7280"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
T8b949e<!-- Icon Selection -->
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"bg-white dark:bg-zinc-900 rounded-xl shadow-sm border border-gray-200 dark:border-zinc-800 overflow-hidden"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"p-4 border-b border-gray-200 dark:border-zinc-800"Tb4b4b4>
Tb4b4b4<Tff7b72h3 Te6edf3classTff7b72=Ta5d6ff"text-lg font-semibold text-gray-900 dark:text-white"Tb4b4b4>IconTb4b4b4<Tb4b4b4/Tff7b72h3Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"p-4 space-y-4"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"relative"Tb4b4b4>
Tb4b4b4<Tff7b72input
Te6edf3v-modelTff7b72=Ta5d6ff"Te6edf3searchTa5d6ff"
Te6edf3typeTff7b72=Ta5d6ff"text"
Tb4b4b4:Te6edf3placeholderTff7b72=Ta5d6ff"Ta5d6ff`Ta5d6ffSearch Tffd700${Te6edf3iconNamesTb4b4b4.Te6edf3lengthTffd700}Ta5d6ff icons...Ta5d6ff`Ta5d6ff"
Te6edf3classTff7b72=Ta5d6ff"w-full px-4 py-3 text-sm border border-gray-300 dark:border-zinc-700 rounded-lg bg-white dark:bg-zinc-800 text-gray-900 dark:text-zinc-100 placeholder-gray-400 dark:placeholder-zinc-500 focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon
Te6edf3icon-nameTff7b72=Ta5d6ff"magnify"
Te6edf3classTff7b72=Ta5d6ff"absolute right-3 top-1/2 -translate-y-1/2 size-5 text-gray-400 dark:text-zinc-500 pointer-events-none"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-3 max-h-[500px] overflow-y-auto p-1"
Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3v-forTff7b72=Ta5d6ff"Te6edf3mdiIconName Tff7b72of Te6edf3searchedIconNamesTa5d6ff"
Tb4b4b4:Te6edf3keyTff7b72=Ta5d6ff"Te6edf3mdiIconNameTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"flex flex-col items-center justify-center p-4 rounded-lg border-2 cursor-pointer transition-all hover:bg-gray-50 dark:hover:bg-zinc-800 hover:border-blue-500 dark:hover:border-blue-500"
Tb4b4b4:Te6edf3classTff7b72=Ta5d6ff"
Te6edf3iconName Tff7b72=== Te6edf3mdiIconName
Tff7b72? Ta5d6ff'border-blue-500 bg-blue-50 dark:bg-blue-900/20'
Tff7b72: Ta5d6ff'border-gray-200 dark:border-zinc-700'
Ta5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3onIconClickTb4b4b4(Te6edf3mdiIconNameTb4b4b4)Ta5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72LxmfUserIcon
Tb4b4b4:Te6edf3keyTff7b72=Ta5d6ff"
Te6edf3mdiIconName Tff7b72+
Tb4b4b4(Te6edf3iconName Tff7b72=== Te6edf3mdiIconName Tff7b72? Te6edf3iconForegroundColour Tff7b72+ Te6edf3iconBackgroundColour Tff7b72: Ta5d6ff''Tb4b4b4)
Ta5d6ff"
Tb4b4b4:Te6edf3icon-nameTff7b72=Ta5d6ff"Te6edf3mdiIconNameTa5d6ff"
Tb4b4b4:Te6edf3icon-foreground-colourTff7b72=Ta5d6ff"
Te6edf3iconName Tff7b72=== Te6edf3mdiIconName Tff7b72? Te6edf3iconForegroundColour Tff7b72: Ta5d6ff'#6b7280'
Ta5d6ff"
Tb4b4b4:Te6edf3icon-background-colourTff7b72=Ta5d6ff"
Te6edf3iconName Tff7b72=== Te6edf3mdiIconName Tff7b72? Te6edf3iconBackgroundColour Tff7b72: Ta5d6ff'#e5e7eb'
Ta5d6ff"
Te6edf3icon-classTff7b72=Ta5d6ff"size-12"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"mt-2 text-xs text-center text-gray-600 dark:text-zinc-400 truncate w-full"
Tb4b4b4:Te6edf3titleTff7b72=Ta5d6ff"Te6edf3mdiIconNameTa5d6ff"
Tb4b4b4>
Tff7b72{{ Te6edf3mdiIconName Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3searchedIconNamesTb4b4b4.Te6edf3length Tff7b72=== T79c0ff0Ta5d6ff"
Te6edf3classTff7b72=Ta5d6ff"text-center py-8 text-sm text-gray-500 dark:text-zinc-400"
Tb4b4b4>
No icons match your search.
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3searchedIconNamesTb4b4b4.Te6edf3length Tff7b72=== Te6edf3maxSearchResultsTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"text-center py-2 text-xs text-gray-500 dark:text-zinc-400"
Tb4b4b4>
Showing first Tff7b72{{ Te6edf3maxSearchResults Tff7b72}} results. Refine your search to see more.
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
T8b949e<!-- Remove Icon Section -->
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"bg-white dark:bg-zinc-900 rounded-xl shadow-sm border border-gray-200 dark:border-zinc-800 overflow-hidden"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"p-4 border-b border-gray-200 dark:border-zinc-800"Tb4b4b4>
Tb4b4b4<Tff7b72h3 Te6edf3classTff7b72=Ta5d6ff"text-lg font-semibold text-gray-900 dark:text-white"Tb4b4b4>Remove IconTb4b4b4<Tb4b4b4/Tff7b72h3Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"p-4"Tb4b4b4>
Tb4b4b4<Tff7b72p Te6edf3classTff7b72=Ta5d6ff"text-sm text-gray-600 dark:text-zinc-400 mb-4"Tb4b4b4>
Remove your profile icon. Anyone who has already received it will continue to see it until
you send them a new icon.
Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"inline-flex items-center gap-2 px-4 py-2 text-sm font-medium rounded-lg border border-red-300 dark:border-red-800 bg-white dark:bg-zinc-800 text-red-600 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-900/20 transition-colors"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3removeProfileIconTa5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"delete-outline" Te6edf3classTff7b72=Ta5d6ff"size-4" Tb4b4b4/Tb4b4b4>
Remove Icon
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72templateTb4b4b4>
Tb4b4b4<Tff7b72scriptTb4b4b4>
Tff7b72import Tff7b72* Tff7b72as Te6edf3mdi Tff7b72from Ta5d6ff"@mdi/js"Tb4b4b4;
Tff7b72import Te6edf3LxmfUserIcon Tff7b72from Ta5d6ff"../LxmfUserIcon.vue"Tb4b4b4;
Tff7b72import Te6edf3ToastUtils Tff7b72from Ta5d6ff"../../js/ToastUtils"Tb4b4b4;
Tff7b72import Te6edf3ColourPickerDropdown Tff7b72from Ta5d6ff"../ColourPickerDropdown.vue"Tb4b4b4;
Tff7b72import Te6edf3MaterialDesignIcon Tff7b72from Ta5d6ff"../MaterialDesignIcon.vue"Tb4b4b4;
Tff7b72import Te6edf3GlobalState Tff7b72from Ta5d6ff"../../js/GlobalState"Tb4b4b4;
Tff7b72import Te6edf3GlobalEmitter Tff7b72from Ta5d6ff"../../js/GlobalEmitter"Tb4b4b4;
Tff7b72export Tff7b72default Tb4b4b4{
Te6edf3nameTff7b72: Ta5d6ff"ProfileIconPage"Tb4b4b4,
Te6edf3componentsTff7b72: Tb4b4b4{
Te6edf3ColourPickerDropdownTb4b4b4,
Te6edf3LxmfUserIconTb4b4b4,
Te6edf3MaterialDesignIconTb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3dataTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4{
Te6edf3configTff7b72: Tff7b72nullTb4b4b4,
Te6edf3iconNameTff7b72: Tff7b72nullTb4b4b4,
Te6edf3iconForegroundColourTff7b72: Tff7b72nullTb4b4b4,
Te6edf3iconBackgroundColourTff7b72: Tff7b72nullTb4b4b4,
Te6edf3originalIconNameTff7b72: Tff7b72nullTb4b4b4,
Te6edf3originalIconForegroundColourTff7b72: Tff7b72nullTb4b4b4,
Te6edf3originalIconBackgroundColourTff7b72: Tff7b72nullTb4b4b4,
Te6edf3searchTff7b72: Ta5d6ff""Tb4b4b4,
Te6edf3maxSearchResultsTff7b72: T79c0ff200Tb4b4b4,
Te6edf3iconNamesTff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4,
Te6edf3isSavingTff7b72: Tff7b72falseTb4b4b4,
Te6edf3autoSaveTimeoutTff7b72: Tff7b72nullTb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3computedTff7b72: Tb4b4b4{
Te6edf3searchedIconNamesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3searchLower Tff7b72= Tff7b72thisTb4b4b4.Te6edf3searchTb4b4b4.Te6edf3toLowerCaseTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3iconNames
Tb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4(Te6edf3iconNameTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72return Te6edf3iconNameTb4b4b4.Te6edf3toLowerCaseTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3includesTb4b4b4(Te6edf3searchLowerTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)
Tb4b4b4.Te6edf3sliceTb4b4b4(T79c0ff0Tb4b4b4, Tff7b72thisTb4b4b4.Te6edf3maxSearchResultsTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3hasChangesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4(
Tff7b72thisTb4b4b4.Te6edf3iconName Tff7b72!== Tff7b72thisTb4b4b4.Te6edf3originalIconName Tff7b72||
Tff7b72thisTb4b4b4.Te6edf3iconForegroundColour Tff7b72!== Tff7b72thisTb4b4b4.Te6edf3originalIconForegroundColour Tff7b72||
Tff7b72thisTb4b4b4.Te6edf3iconBackgroundColour Tff7b72!== Tff7b72thisTb4b4b4.Te6edf3originalIconBackgroundColour
Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3watchTff7b72: Tb4b4b4{
Te6edf3configTff7b72: Tb4b4b4{
Te6edf3handlerTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3configTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3iconName Tff7b72= Tff7b72thisTb4b4b4.Te6edf3configTb4b4b4.Te6edf3lxmf_user_icon_name Tff7b72|| Tff7b72nullTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3iconForegroundColour Tff7b72= Tff7b72thisTb4b4b4.Te6edf3configTb4b4b4.Te6edf3lxmf_user_icon_foreground_colour Tff7b72|| Ta5d6ff"#6b7280"Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3iconBackgroundColour Tff7b72= Tff7b72thisTb4b4b4.Te6edf3configTb4b4b4.Te6edf3lxmf_user_icon_background_colour Tff7b72|| Ta5d6ff"#e5e7eb"Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3saveOriginalValuesTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3immediateTff7b72: Tff7b72trueTb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3iconForegroundColourTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3debouncedAutoSaveTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3iconBackgroundColourTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3debouncedAutoSaveTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3iconNameTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3debouncedAutoSaveTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3mountedTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3getConfigTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3iconNames Tff7b72= Tffa657ObjectTb4b4b4.Te6edf3keysTb4b4b4(Te6edf3mdiTb4b4b4)Tb4b4b4.Te6edf3mapTb4b4b4(Tb4b4b4(Te6edf3mdiIconTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72return Te6edf3mdiIcon
Tb4b4b4.Te6edf3replaceTb4b4b4(Ta5d6ff/^mdi/Tb4b4b4, Ta5d6ff""Tb4b4b4)
Tb4b4b4.Te6edf3replaceTb4b4b4(Ta5d6ff/([a-z])([A-Z])/gTb4b4b4, Ta5d6ff"$1-$2"Tb4b4b4)
Tb4b4b4.Te6edf3toLowerCaseTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3beforeUnmountTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3autoSaveTimeoutTb4b4b4) Tb4b4b4{
Te6edf3clearTimeoutTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3autoSaveTimeoutTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3methodsTff7b72: Tb4b4b4{
Te6edf3saveOriginalValuesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3originalIconName Tff7b72= Tff7b72thisTb4b4b4.Te6edf3iconNameTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3originalIconForegroundColour Tff7b72= Tff7b72thisTb4b4b4.Te6edf3iconForegroundColourTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3originalIconBackgroundColour Tff7b72= Tff7b72thisTb4b4b4.Te6edf3iconBackgroundColourTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3debouncedAutoSaveTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3autoSaveTimeoutTb4b4b4) Tb4b4b4{
Te6edf3clearTimeoutTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3autoSaveTimeoutTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3autoSaveTimeout Tff7b72= Te6edf3setTimeoutTb4b4b4(Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3hasChanges Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3iconName Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3iconForegroundColour Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3iconBackgroundColourTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3saveChangesTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4, T79c0ff1000Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3getConfigTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3axiosTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff"/api/v1/config"Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3config Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3configTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Ta5d6ff"Failed to load configuration"Tb4b4b4)Tb4b4b4;
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3updateConfigTb4b4b4(Te6edf3configTb4b4b4, Te6edf3silent Tff7b72= Tff7b72falseTb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3axiosTb4b4b4.Te6edf3patchTb4b4b4(Ta5d6ff"/api/v1/config"Tb4b4b4, Te6edf3configTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3config Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3configTb4b4b4;
Te6edf3GlobalStateTb4b4b4.Te6edf3config Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3configTb4b4b4;
Te6edf3GlobalEmitterTb4b4b4.Te6edf3emitTb4b4b4(Ta5d6ff"config-updated"Tb4b4b4, Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3configTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3saveOriginalValuesTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3silentTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Ta5d6ff"Profile icon saved successfully"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3silentTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Ta5d6ff"Failed to save profile icon"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4;
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3saveChangesTb4b4b4(Te6edf3silent Tff7b72= Tff7b72falseTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3hasChangesTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3iconForegroundColour Tff7b72|| Tff7b72!Tff7b72thisTb4b4b4.Te6edf3iconBackgroundColourTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3warningTb4b4b4(Ta5d6ff"Please select both background and icon colors"Tb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3iconNameTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3warningTb4b4b4(Ta5d6ff"Please select an icon"Tb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3isSaving Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3success Tff7b72= Tff7b72await Tff7b72thisTb4b4b4.Te6edf3updateConfigTb4b4b4(
Tb4b4b4{
Te6edf3lxmf_user_icon_nameTff7b72: Tff7b72thisTb4b4b4.Te6edf3iconNameTb4b4b4,
Te6edf3lxmf_user_icon_foreground_colourTff7b72: Tff7b72thisTb4b4b4.Te6edf3iconForegroundColourTb4b4b4,
Te6edf3lxmf_user_icon_background_colourTff7b72: Tff7b72thisTb4b4b4.Te6edf3iconBackgroundColourTb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3silent
Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3success Tff7b72&& Tff7b72!Te6edf3silentTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Ta5d6ff"Profile icon saved successfully"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72finally Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3isSaving Tff7b72= Tff7b72falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3resetChangesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3hasChangesTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3iconName Tff7b72= Tff7b72thisTb4b4b4.Te6edf3originalIconNameTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3iconForegroundColour Tff7b72= Tff7b72thisTb4b4b4.Te6edf3originalIconForegroundColourTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3iconBackgroundColour Tff7b72= Tff7b72thisTb4b4b4.Te6edf3originalIconBackgroundColourTb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3infoTb4b4b4(Ta5d6ff"Changes reset to saved values"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3onIconClickTb4b4b4(Te6edf3iconNameTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3iconName Tff7b72= Te6edf3iconNameTb4b4b4;
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3removeProfileIconTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3isSaving Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3success Tff7b72= Tff7b72await Tff7b72thisTb4b4b4.Te6edf3updateConfigTb4b4b4(Tb4b4b4{
Te6edf3lxmf_user_icon_nameTff7b72: Tff7b72nullTb4b4b4,
Te6edf3lxmf_user_icon_foreground_colourTff7b72: Tff7b72nullTb4b4b4,
Te6edf3lxmf_user_icon_background_colourTff7b72: Tff7b72nullTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3successTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Ta5d6ff"Profile icon removed successfully"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72finally Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3isSaving Tff7b72= Tff7b72falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4<Tb4b4b4/Tff7b72scriptTb4b4b4>
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────